#pragma once
#include <vector>

class XThread;
class XTask;
class XThreadPool
{       
public:
        //单列模式
        static XThreadPool* Get();

        //初始化所有线程并启动线程
        void Init(int threadCount);

        //分发线程
        void Dispatch(XTask *task);

        ~XThreadPool();
private:
        //线程数量
        int threadCount = 0;

        //线程池使用vector来存储线程
        std::vector<XThread *> threads;

        //上一次的线程
        int lastThread = -1;

        XThreadPool();
};